package com.ynet.middleground.riskmanage.service;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.riskmanage.bean.PurchaseReq;
import com.ynet.middleground.riskmanage.dto.PurchaseInfoDTO;
import com.ynet.middleground.riskmanage.dto.PurchaseOrderDTO;
import com.ynet.middleground.riskmanage.dto.PurchaseReconciliationDTO;

/**
 * @InterfaceName PurchaseCenterService
 * @Description 对接采购中心服务
 * @Author zhangyongbin
 * @Date 2020/8/13 11:28
 * @Version 1.0
 */
public interface PurchaseCenterService {

    /**
     * @Description 获取订单信息
     * @Date 11:30 2020/8/13
     * @Param [req] 获取订单信息服务请求信息
     * @return com.ynet.core.common.ServiceResult<java.util.List<com.ynet.middleground.riskmanage.dto.PurchaseOrderDataDTO>>
     **/
    ServiceResult<PurchaseOrderDTO> getOrderData(@Valid PurchaseReq req);

    /**
     * @Description 获取发票信息
     * @Date 9:47 2020/8/14
     * @Param [req] 请求类
     * @return com.ynet.core.common.ServiceResult<PurchaseInfoDTO> 返回发票信息 或 （订单信息、对账单信息、发票信息）
     **/
    ServiceResult<PurchaseInfoDTO> getInvoiceData(@Valid PurchaseReq req);

    /**
     * 查询对账单信息
     *
     * @param req 获取订单、对账单数据请求信息
     * @return 对账单信息列表
     * @author liulx
     * @date 2020-08-13 20:41:55
     */
    ServiceResult<PurchaseReconciliationDTO> listReconciliation(@Valid PurchaseReq req);
}
